A variable is a named storage location capable of containing a mathematical value that can be modified by ongoing mathematical calculations. Storing values to variables and recalling stored variables in subsequent calculations is a common and an important functionality in any mathematical software executing on personal computers or handheld graphing calculators. It is convenient to use a name to increase the expressiveness of mathematical calculations. People tend to remember names better than numbers. For example, it is easier to remember that “z” is a named storage location for the value “789343415” then to try to remember the number itself. But as the number of variables increases, people may have a difficult time remembering whether a variable has been defined to store a value.
To illustrate this problem, consider a scenario in which a user is working with a piece of mathematical software to perform mathematical calculations. See FIGS. 1A-1B. The calculation requires the user to store several variables in a calculator 104, including a variable “x” defined to contain the value “5”. See element 102. Later, the user needs to cause a symbolic resolution to the mathematical expression 106 “(x+2)(x+3)” and expects the answer 112 to be “x2+5x+6”. However, because there are many variables stored, the user may not remember “x” is now a stored variable 110 with the value “5”. Without clearing variable x, the calculation will result in “56,” and the user may not know the reason of the unexpected result, especially when the mathematical expression involved is more complicated.
This problem turns every session with the calculator into a software debugging venture for which many users neither have the expertise nor the patience. The problem is even more pernicious in certain handheld graphing calculators because the stored variables and their associated values persist between power-downs. In the education market, students are still at an early stage in their ability to grasp mathematical ideas. The problem described above at best causes wasted time and effort in requiring students to debug the problem but at worst it may cause students to incorrectly comprehend mathematical concepts, which cannot be easily undone.